﻿namespace HBKY.Shop.Extensions.CoreBuilder
{
    public interface ICoreServiceBuilder
    {
        /// <summary>
        /// 添加数据库上下文
        /// </summary>
        void AddDbcontext();

        /// <summary>
        /// 添加Mvc
        /// </summary>
        void AddMvcExtensions();

        /// <summary>
        /// 添加缓存
        /// </summary>
        void AddCache();

        /// <summary>
        /// 添加日志
        /// </summary>
        void AddLog();

        /// <summary>
        /// 添加AutoMapper自动对象映射组件
        /// </summary>
        void AddAutoMapper();

        /// <summary>
        /// 添加Cors跨域
        /// </summary>
        void AddCors();

        /// <summary>
        /// 添加Swagger生成器
        /// </summary>
        void AddSwaggerGenerator();

        /// <summary>
        /// 添加Jwt授权
        /// </summary>
        void AddJwtAuth();

        /// <summary>
        /// 添加数据库上下文
        /// </summary>
        void AddSqlSugar();

        /// <summary>
        /// 添加自定义Http上下文
        /// </summary>
        void AddHttpContext();

        /// <summary>
        /// 添加定时作业
        /// </summary>
        void AddTaskJob();

        /// <summary>
        /// HttpClient
        /// </summary>
        void AddHttpClient();

        /// <summary>
        /// 添加日志模板
        /// </summary>
        void AddNlogLayoutRenderers();

        void AddConsumer();

        void AddProducer();

        /// <summary>
        /// redis 消息队列
        /// </summary>
        void AddRedisInitMqSetup();

        /// <summary>
        /// 添加存储
        /// </summary>
        void AddStorage();
    }
}
